/**
 * 单次权益价
 * @description 规则： 大于0， 且保留2位小数
 */
 export const checkDiscount = (rule, value, callback) => {
  if (Number(value) < 0) {
    callback(new Error('请输入大于等于0的数字'))
  }

  if (!/^[0-9]\d*(\.{0,1}\d{0,2})$/.test(value)) {
    callback(new Error('小数点后最多两位小数'))
  } else {
    callback()
  }
}

/**
 * 权益次数
 */
export const checkNum = (rule, value, callback) => {
  if (value && !/^[1-9][0-9]{0,3}$/.test(value)) {
    return callback(new Error('四位正整数'))
  }

  callback()
}

export const checkCardTotalNum = (rule, value, callback) => {
  if (!/^[1-9][0-9]{0,5}$/.test(value)) {
    callback(new Error('六位正整数'))
  } else {
    callback()
  }
}

/**
 * 折扣-自定义校验
 * @description 权益方式位【固定折扣】时，展2示M折，M保留位小数，大于等于0小于等于1
 */
export const discountValidate = (rule, value, callback) => {

  if (Number(value) < 0 || Number(value) > 1) {
    callback(new Error('请输入0到1之间的数字'))
  }
  // !/^[0-9](\.\d{0,2})?$/.test(value)
  if (Number(value) === 0 || Number(value) === 1) {
    return callback()
  }

  // 待完善 todo
  if (!/^[0]\d?(\.\d{0,2})?$/.test(value)) {
    callback(new Error('请输入0.00到1.00之间的数字'))
  } else {
    callback()
  }
}

/**
 * 权益次数-动态限制
 * @param {*} count
 * @returns
 */
export const limitUsageCount = (count) => {
  return (rule, value, callback) => {
    if (Number(value) > count) {
      return callback(new Error(`单项权益次数限制在${count}以内`))
    }

    callback()
  }
}

/**
 * 关联商品，内部商品最低折扣0.9 - 接口返回的动态参数
 */
export const limitFcDiscount = (discount) => {
  return (rule, value, callback) => {
    if (Number(value) < discount) {
      return callback(new Error(`内部商品最低 ${discount}折`))
    }

    callback()
  }
}
